﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Ventanita
{
    public partial class Form1 : Form
    {
        private string cadenaConexion = @"
                Data Source=.\SQLEXPRESS;
                AttachDbFilename=D:\Empresarios C#\Ventanita\db\Database1.mdf;
                Integrated Security=True;
                User Instance=True";

        public Form1()
        {
            InitializeComponent();
        }

        private void buCargar_Click(object sender, EventArgs e)
        {
            CargarDatos();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            CargarDatos();
        }

        private void CargarDatos() {
            SqlConnection conexion = new SqlConnection(cadenaConexion);
            conexion.Open();

            SqlCommand comando = CrearComando(conexion, "SELECT * FROM Contacto");

            SqlDataAdapter adaptador = new SqlDataAdapter(comando);
            DataSet tabla = new DataSet();
            adaptador.Fill(tabla);

            dgvContactos.DataSource = tabla.Tables[0];
        }

        private SqlCommand CrearComando(SqlConnection conexion, string texto) {
            SqlCommand comando = conexion.CreateCommand();
            comando.CommandType = CommandType.Text;
            comando.CommandText = texto;
            return comando;
        }

        private void buGuardar_Click(object sender, EventArgs e)
        {
            SqlConnection conexion = new SqlConnection(cadenaConexion);
            conexion.Open();

            SqlCommand comando = CrearComando(conexion, "INSERT INTO Contacto(nombre, telefono, alias, direccion) VALUES(@nombre, @telefono, @alias, @direccion)");

            //SqlParameter id = new SqlParameter("id", tbID.Text);
            //id.DbType = DbType.Int32;
            SqlParameter nombre = new SqlParameter("nombre", tbNombre.Text);
            SqlParameter telefono = new SqlParameter("telefono", tbTelefono.Text);
            SqlParameter alias = new SqlParameter("alias", tbAlias.Text);
            SqlParameter direccion = new SqlParameter("direccion", tbDireccion.Text);

            //comando.Parameters.Add(id);
            comando.Parameters.Add(nombre);
            comando.Parameters.Add(telefono);
            comando.Parameters.Add(alias);
            comando.Parameters.Add(direccion);

            comando.ExecuteNonQuery();
        }

        private void buEliminar_Click(object sender, EventArgs e)
        {
            SqlConnection conexion = new SqlConnection(cadenaConexion);
            conexion.Open();

            SqlCommand comando = CrearComando(conexion, "DELETE Contacto WHERE id=@id");

            object idSeleccionado = dgvContactos.SelectedRows[0].Cells[0].Value;

            SqlParameter id = new SqlParameter("id", idSeleccionado);
            comando.Parameters.Add(id);

            if(MessageBox.Show("¿Esta seguro?","Pregunta", MessageBoxButtons.YesNo) == DialogResult.Yes)
                comando.ExecuteNonQuery();
        }

        private void dgvContactos_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            tbID.Text           = dgvContactos.Rows[e.RowIndex].Cells[0].Value.ToString();
            tbNombre.Text       = dgvContactos.Rows[e.RowIndex].Cells[1].Value.ToString();
            tbTelefono.Text     = dgvContactos.Rows[e.RowIndex].Cells[2].Value.ToString();
            tbAlias.Text        = dgvContactos.Rows[e.RowIndex].Cells[3].Value.ToString();
            tbDireccion.Text    = dgvContactos.Rows[e.RowIndex].Cells[4].Value.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(dgvContactos.Rows[0].Cells[1].Value.ToString());
        } 
    }
}
